1. Field of the Invention
The present invention generally relates to an image forming apparatus, and more particularly, to an image forming apparatus of which programs can be updated remotely and a method of remotely updating programs of the image forming apparatus.
2. Description of the Related Art
Multifunctional peripherals are known and widely used. A multifunctional peripheral (MFP) is an image forming apparatus in which various functions of a facsimile machine, a printer, a copier, and a scanner, for example, are integrated. The MFP includes hardware resources such as a display unit, an image forming unit, and an image capturing unit. The MFP further includes application programs such as a facsimile application, a printer application, a copier application, and a scanner application, for example. The facsimile application, the printer application, the copier application, and the scanner application cause the MFP to operate as a facsimile machine, a printer, a copier, and a scanner, respectively.
The MFP is operated by various programs such as the application programs and modules stored in non-volatile RAM (NV-RAM), for example. It is possible to add new functions to the MFP and/or improve existing functions of the MFP by updating the programs stored in the NV-RAM. The programs of the MFP may be updated by accessing a server via a network such as the Internet thereby to download an update program stored in the server.
The update program downloadable from the server usually includes a plurality of individual programs. For example, one individual program updates the printer application, and another individual program updates a program for controlling paper handling mechanism. The plurality of individual programs are combined into a series of data.
The data structure of the update program is shown in FIG. 37. As shown in FIG. 37, the update program includes an update program header followed by a plurality of individual update programs each of which includes an individual update program header and an individual update program body.
The update program header includes a “total length” and a “total number of programs”. The total length indicates the data length of the update program except for the update program header. The total number of programs indicates the total number of individual update programs included in the update program.
The individual update program header includes a “program name”, a “version”, and a “length”. The program name indicates the name of a program (a printer application, for example) that is to be updated by the individual update program. The version indicates the version of the individual update program. The length indicates the length of the individual update program body.
If the individual update programs are executed in the order in which the individual update programs are arranged in the data structure of the update program as shown in FIG. 37, the update program may not work properly because of reasons described below.
Additionally, when the MFP is remotely updated, if the MFP is not rebooted, an operator of the MFP may need to understand that the MFP has been remotely updated from what is displayed on a screen of the display unit of the MFP, and the operator may need to manually reboot (power off and on) the MFP.
If the MFP is updated at night, the operator may not know that the MFP has been updated and whether the update is successful.